23

» WarCraft 3 / Модели с импортируемыми текстурами

Похожие вопросы:

ответ
Вот правильные пути:
baal.blp
Baal.mdx
Baal_portrait.mdx
То есть просто названия файлов должны быть путями.
ответ
Заходишь в WorldEditor
  1. Открываешь менеджер импорта.
  2. Импортируешь модель.
  3. Кликаешь по импортированному файлу два раза, ставишь галочку использовать нестандартный путь, стираешь war3mapImported\, закрываешь импортированный файл.
  4. Сохраняешь карту.
  5. Открываешь редактор объектов, ищешь нужную тебе боевую единицу или создаешь нестандартную.
  6. Ищешь у юнита Графика Файл мод..
  7. Нажимаешь импорт.
  8. Все.
Ели и это не понятно, то вот наглядное пособие: www.youtube.com/watch?v=o_FtWeeskac
ответ
Эм.. чел, а ты случайно не трогал карты путей в ро? Я как-то поставил туда текстуру путей и такая же проблема была, ы)

п.с. вид -> пути: суша

23

» WarCraft 3 / замена StringHash()

Похожие вопросы:

ответ
похоже более всего на мусор, попадающий в память откуда-то извне. Обычно пропущенная строка автокаста такой фигней страдает. Нельзя точно сказать, нужно менять поля и смотреть. К счастью, описания можно менять и локально, не перепаковывая карту

23

» WarCraft 3 / Отлов определенных атак

Похожие вопросы:

ответ
~8gabriel8:
Ещё можешь наносить вместо отравления иной бафф, а отравлять даммиком. По этому баффу сможешь различать урон от автоатаки и способности.

23

» WarCraft 3 / Как сделать это в редакторе карт варкрафт 3?

Похожие вопросы:

ответ
Сделать триггер для проверки кода, ну и организовать систему для его считывания и поверь это очень много всего, придется продумать.
Если коротко ты цифрами будешь (условно) сохранять своего героя, каждый набор цифр отвечает за какой то параметр героя, силу, ловкость, уровень, предметы и так далее, когда я говорю что это очень много всего придется продумать так и есть, тебе придется создать базу данных, для всех чисел и все проверять при введении команды, для защиты можно сверять суму чисел и проверять героя за которого играет игрок.
Мой тебе совет, не поленись и вбей в поиск "сделать команду save для карты варкрафт 3", на твое удивление там будет то что тебе нужно, уже на второй ссылке.
ответ
Отловить событие смерти юнита и создать на его месте эффект крови .
Clamp, этот вариант не оставляет после себя трупа
ответ
Avazik, вот тут описано как ссылка

23

» WarCraft 3 / Проблемы с Кампанией

Принятый ответ
Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду.
Кампания - это пак карт.
ответ
~8gabriel8:
Решение в том, чтобы не копировать одну и ту же модель ЗЭ, а чего-то там внутри самой модели переименовывать.
ответ
Поставил 1.26. Вступительное видео заработало. Звуков диалогов в начале 1 миссии нет, но похоже они здесь и не планировались. В самом журнале строчек не добавляется. Нашёл их в том, что вызывается в левой части меню.

23

» WarCraft 3 / loop

Похожие вопросы:

ответ
Ярг Восьмой:
nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
ответ
функцию Trig_BlockA_Func005Func011Func001C() убери нафиг
как и другие функции используемые для ифов и подобной херни
а вообще про это написано во всех статьях про jass
мб стоит прочитать сразу несколько статей а затем задавать сюда вопросы?

правила сайта
смотри пункт 10.3
ответ
Хештаблицей будет быстрее:
nvc123:
Extremator:
а что насчёт хештаблиц? Скорость их работы?
всё крайне печально
лол что?
скорость работы глобалок в 1,5 раза быстрее чем у хештейблов
т.е. 10 обращений к хештейблам выполняется столько же времени сколько и 15 к глобалкам
если каждую секунду не выполняется более 1000 обращений к хештейблу то не юзать хэштейблы ради оптимизации та ещё тупость
Да, и для какой цели там сверху стоит "exitwhen true"?
ответ
Ну если много юнитов создавать, особенно тяжелых юнитов вроде героев, то будет пролаг, т.к юниты весьма тяжелые обьекты по меркам движка.
Первый раз созавая юнитов движок будет подгружать все их данные из слк таблиц, что тоже вызывает пролаг.

23

» WarCraft 3 / Переменная force

Похожие вопросы:

ответ
Отключайте по одной, и смотрите какая глючит.
Возможно, что он пытается атаковать кого-либо, но местная пачка крипов сбивает атаку, сообщая что на базу напали, ну или что-то подобное.
ответ
Даже так не хочет работать. Я добавляю игрока и сразу же вызываю функцию.

нельзя делать call DestroyForce
или call RemoveRect после этого ты их ни разу не сможешь юзнуть даже указав новую переменную
Как видишь выше, дело не в этом. Да и не уничтожал я их.

Может она просто не работает в массиве?...

Закрою вопрос и перефразирую для понимания.
ответ
Прилагаю карту

Надо было указать размер массива. Странно, во всех переменных стоит 1 и все работает. Наверное переменная занимает больше памяти, чем другие.

23

» WarCraft 3 / Проекты варкрафта

Похожие вопросы:

ответ
Полагаю, что подобную тему стоит создать в блоге, а не в разделе вопросов и ответов.
ответ
Итого чтобы делать карту на Warcraft 3 в 2018 оптимальна сборка:
  1. Версия Warcraft — 1.26a
  2. патчи, плагины — JNGP + AdicHelper + попробовать MemHack+RenderEdge
  3. Утилиты: ButtonManager для иконок, фотошоп для новых иконок и текстур
  4. Сообщества для тестов — в гарене в Russia RPG Room 01
  5. Ресурсы искать на XGM, Hiveworkshop
  6. Ответы на вопросы искать на XGM + Hiveworkshop + смотреть стримы павла
Ответ на вопрос на канале Павла с 18-й минуты
ответ
Несовместимость с железом... У меня новая дотка айкапа к примеру напрочь зависает...
ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.
ответ
Аналогично были вылеты, когда я работал с картами в кампании.

23

» WarCraft 3 / Увеличение магического урона

Похожие вопросы:

ответ
Ловишь весь урон
@
Наносишь от источников дополнительный
ответ
Конечно можно, но триггерно. В варкравте нету дефолтных аур которые бы влияли на магический урон.
Раз в 2 сек. проверяешь есть ли у юнитов на карте бафф ауры пустышки (чародейской ауры или ауры ускорения, основа не важна). Если есть, но у юнита нету спеллбука с скиллом благословление элуный - который повышает урон от магии на n %, то вручаем запрещённый спеллбук этому юниту, если у юнита нету баффа ауры но есть спеллбук удаляем спеллбук. Все просто.

23

» WarCraft 3 / Высота земли

Похожие вопросы:

ответ
Анимация - изменить высоту юнита (юнит, высота, скорость)
как-то так... или в Спецэффекты
ответ
8gabriel8, земноводный но все равно дергает верх и низ если вода глубогая. Изврашеным способом не заметно как дергает.
ответ
Насколько помню нет, (хотя - невидимые платформы, но это тот еще костыль).
ответ
CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
ответ
XGM Bot:
Похожие вопросы:

ответ
pas logique:
Гигамон- Спасибо!
В триггерах тип действий "Камера". Если конкретно расстояние до цели надо поменять, то "Камера - Установить Поле Камеры (Время)" ("Камера - Set Camera Field (Timed)").
ответ
Вероятнее всего, ты повышаешь камеру выше скайбокса.
Вероятные решения проблемы:
а) Уменьшить самих юнитов и стилизовать ланд под маленькие модели.
б) Вставить нестандартный скайбокс с огромным размером.
(я бы выбрал первый вариант, потому что он круче)
ответ
CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
ответ
Ну так берем и делаем, в чем проблема то? Элементарный триггер же? Взяли подрстроку из введенного в чат сообщения и настроили камеру.


23

» WarCraft 3 / Дессинхрон

Похожие вопросы:

ответ
если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя, а если герой не существует то центр карты
ответ
  1. Перезаход обязателем, ибо другие "некачественые" в плане кода карты, вызывают десинхи в вашей игре
  2. Наличие читов может вызывать десинхи, много раз замечал, когда в гарене хоставал, люди сами говорили, что в моей карте переставало выкидывать, только после того как они МХ (мапхак) отключат
  3. Высокая нагрузка на триггер инициализации, частая проблема огромных проектов, рекомендуется сделать отложенную инициализацию, например предзагрузку способностей на пролаг первых 10 секунд игры
Выводы: если все будут писать идельный код и играть на последнем патче, то не будут портить игру другим этими вылетами
Я изначально знал, что мой код плохой (использование мемхака (не путать с мапхакам)), и чтобы другим не портить жизнь закрывал вакрафт после завершения игры

23

» WarCraft 3 / Ошибка в способности

Похожие вопросы:

ответ
проверь настройки A01P, возможно, там кривые данные выше 3-го уровня
ответ
Kanteu, у тебя в описаниях стоит код AUdc, тебе нужно его заменить на равкод твоей способности. Чтобы его узнать, выдели способность и нажми Ctrl+D. Перед двоеточием будет равкод способности.
ответ
МодификаторПал я так понимаю число, а не юнит...
local unit u
local real r
Это конкретно по ошибке... а вообще - не надо смотреть видео от этого человека, он тебя плохому научит... правда. А другим потом придётся тебя переучивать, если ты сам это дело не забросишь
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

23

» WarCraft 3 / Поворот эффекта

Похожие вопросы:

ответ
Всё, разобрался, вопрос снимаю)
ответ
В модел эдиторе перенеси нужную кость в начало координат и в ключевых фреймах пропиши одинаковые координаты для этой кости. Вот и проверишь.
ответ
Ах, я понял чего ты хочешь конкретно сейчас. Чтобы модель смотрела в камеру, словно на экране выбора персонажа? В таком случае ситуация немного упрощается.
Нам больше не нужно хранить текущую матрицу поворота эффекта, ведь мы не производим ее вращение, вместо этого мы высчитывает всю необходимую ориентацию из положения камеры и самого эффекта. Подход, в целом, остается прежним, но для поиска осей ориентации мы теперь будем использовать некоторый вспомогательный вектор, чье направление совпадает с направлением глобальной оси Z, и путем векторного произведения этого вспомогательного вектора на вектор оси X эффекта (получаемый как и прежде p2 - p1) мы получаем вектор ориентации эффекта Y, а векторное произведение X на Y нам даст ось Z эффекта.
Весь процесс можно разжевать на множество абзацев, но делать этого нет смысла. Я проще скину твою карту с новым вариантом.
Тем не менее, я вижу некоторое непонимание темы и потому считаю должным указать на некоторые ошибки в твоем прошлом коде
Код
    private function RotationMatrixToEuler takes MATRIX3 R returns VECTOR3
    
        local real x
        local real y
        local real z
        local real sy = SquareRoot(R.m11 * R.m11  +  R.m21 * R.m21)
     
        local boolean singular = sy < .000001 or sy == 0 // If
     
        if not singular then
        
            set x = Atan2(R.m32 , R.m33)
            set y = Atan2(-R.m31, sy)
            set z = Atan2(R.m21, R.m11)
        
        else
        
            set x = Atan2(-R.m23, R.m22)
            set y = Atan2(-R.m31, sy)
            set z = 0
            
        endif
        
        return VECTOR3.New_1(x, y, z)
    
    endfunction
Я не понимаю, как работает эта функция. В моем понимании, преобразование матрицы поворота в углы Эйлера происходит за счет обратного преобразования. То есть, чтобы преобразовать матрицу в Эйлер, необходимо знать как преобразуется Эйлер в матрицу, поскольку это обратные друг другу процессы. В новом примере я ее переписал.
Код
        set rotation.m11 = X.x
        set rotation.m12 = X.y
        set rotation.m13 = X.z
        
        set rotation.m21 = Y.x
        set rotation.m22 = Y.y
        set rotation.m23 = Y.z
        
        set rotation.m31 = Z.x
        set rotation.m32 = Z.y
        set rotation.m33 = Z.z
Здесь идет неверное назначение параметров матрицы. Дело в том, что матрица записывается следующим образом (из readme библиотеки Math)
m11 m12 m13
m21 m22 m23
m31 m32 m33
При этом, оси записываются слева направо, столбиками, то есть , ось X здесь, это m11, m21 и m31. Следовательно верной записью будет
Код
        set rotation.m11 = X.x
        set rotation.m21 = X.y
        set rotation.m31 = X.z
        
        set rotation.m12 = Y.x
        set rotation.m22 = Y.y
        set rotation.m32 = Y.z
        
        set rotation.m13 = Z.x
        set rotation.m23 = Z.y
        set rotation.m33 = Z.z
И самая ложная строка
        set rotation = MATRIX3.New_0()
Это создаст нулевую матрицу, то есть матрицу, все значения которой - нули. Базовая же матрица поворота, это единичная матрица, то есть матрица, чья главная диагональ состоит из единиц, а все остальное - нули.
Но это просто заметки, в текущей версии этих участков кода больше нет.
ответ
Посмотри вот тут: xgm.guru/p/clamp/clamp-physics
Решал точно такую-же проблему, успешно
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» IrInA Host Bot / Патч

Похожие вопросы:

ответ
Патч на большие карты лежит с коннектором
ответ
IrIna Host Bot не осуществляет поддержку по картам. Пишите автору карты
ответ
Ты про game.dll? Его можно скачать, поискав в интернете. Или под этим сообщением.

23

» WarCraft 3 / Фреймы на МемХаке

Похожие вопросы:

ответ
в 1.26 так делал xgm.guru/p/wc3/163817
Ща mix убраны и архитектура wc переделана, но идея таже - внедриться в процесс варкрафта и найти оффсеты функций.

23

» WarCraft 3 / Время каста

Похожие вопросы:

ответ
У морфов есть параметр - неприрываемый это особое состояние юнита, которое нужно чтобы юнит докастовал заклинание в любом случае (если что то метаморфоза это 2 каста скилла, в альтернативную форму и обратно и у обоих есть время каста)
Ну собственно нам нужен скилл на основе морфа демон хантера "Перевоплощение"", начальная и конечная форма - дамми герой, остальные параметры в 0, суем этот скилл в руну а руну вручаем нужному герою и тут же отдаем приказ качтовать что то....
Результат - герой будет кастовать скилл, игнорируя всех и вся, иконки скиллов будут активны, но хоть закликайся.
Выйти из этого состояния можно только одним способом - выполнить любой морф как следует до конка, подходит для этого 'Aave' - Avenger form (морф сфинкса)
ответ
SamuraiKing:
есть вариант попроще - изменить способность звездопада, чтобы звезды падали 1 раз, и за каждый нужный промежуток времени создавать дамми и приказывать кастовать
ответ
call SetCameraFieldForPlayer( GetOwningPlayer(GetEnumUnit()), CAMERA_FIELD_TARGET_DISTANCE, 5000.00, 3.00/*3 - время отдаления */ )
Камеру можно прикрепить к юниту-кастеру. Также можно настроить смещение камеры
local real angle = GetUnitFacing(unit)*bj_DEGTORAD //угол взгляда кастера - угол смещения
local real dist = 300//расстояние, на которое сместится камера.
call SetCameraTargetControllerNoZForPlayer(GetOwningPlayer(unit),unit, dist*Cos(angle), dist*Sin(angle), false)
ответ

Графика - Анимация: обратный ход броска и Графика - Анимация: точка броска - графическте составляющие, анима у юнитов проигрывается, и созданы для задержек. Для невидимого dummy-каста это и не нужно

если вам нужна пустышка, то таких есть есть несколько десятков. Но что вам нужно?
  1. чтобы не останавливался перед кастом, и шел дальше выполнять очередь приказов. но такое исключаем, вам же мгновенная нужна. к сожалению, такие абилки, требуют задержек. у меня есть список, но надо проверить CastTime = 0 будет работать на таких?
  2. а есть такие скилы: кастанул, и юнит применил (стремительность берсерк двойные кнопки щит и прочее) xgm.guru/p/blog-steal-nerves/ability4
  3. мб фреймы? вам же нужна кнопка?

23

» WarCraft 3 / Не могу найти причину

Похожие вопросы:

ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
Закрываю вопрос
Нашел нормальный блокнот и через него отредактил
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

23

» WarCraft 3 / Не запускается карта с мемхаком

Похожие вопросы:

ответ
ничем, кроме названий переменных. попробуй отключить морфинг имен
ответ
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
ответ
Все функции прелоада замена на рид/врайт мемхака, и в любом случае проверь права администратора для варкрафта, например JNGP точно запущен с правами админа и всё норм, права на запись есть, а если вар запускаешь с обычными, то у него не будет прав для записи, файл прелоада не создасться как и writestring и дальше всё поедет...
MKDimon, Запусти от админа, отпишись